home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / misc_pto / 29ksim / mw_dhry.lst < prev    next >
File List  |  1988-04-06  |  61KB  |  1,191 lines

  1.  
  2.  
  3. Am29000-ASM  V2.21                                                                                                        Page    1
  4.                              0  nop    .macro
  5.                              0      aseq    40#h,gr01,gr01
  6.                              0      .endm
  7.                              0  
  8.                              0  data    .seg    data
  9.           =00000000          0      .use    data
  10.           =00000000          0      .align
  11.                              0      .global    _Version
  12. 00000000   31 2e 31 00       0  _Version:    .text    "1.1\0"
  13.                              0  
  14.                              0  text    .seg    code
  15.           =00000000          0      .use    text
  16.                              0      .global    _main
  17.                              0  ;--------------| main |-----------------------
  18.                              0  _main:
  19. 00000000   25010110          0      sub    gr01,gr01,16
  20. 00000004   5e80017e          0      asgeu    80#h,gr01,gr7e
  21. 00000008   a8008008          0      call    lr00,_Proc0
  22.                              0  ;{
  23.                              0  ;    Proc0();
  24. 0000000c   15810118          0      add    lr01,gr01,24
  25.                              0  ;    exit(0);
  26. 00000010   a8ff80fc       X  0      call    lr00,_exit
  27. 00000014   03008200          0      const    lr02,0
  28.                              0  ;}
  29. 00000018   15010110          0      add    gr01,gr01,16
  30. 0000001c   70400101          0      aseq    40#h,gr01,gr01
  31. 00000020   c0000080          0      jmpi    lr00
  32. 00000024   5681817f          0      asleu    81#h,lr01,gr7f
  33.                              0  bss    .seg    bss
  34.           =00000000          0      .use    bss
  35.                              0      .global    _IntGlob
  36.           =00000000          0      .align
  37. 00000000                     0  _IntGlob:    .block    4
  38.           =00000028          0      .use    text
  39.           =00000004          0      .use    bss
  40.                              0      .global    _BoolGlob
  41.           =00000004          0      .align
  42. 00000004                     0  _BoolGlob:    .block    4
  43.           =00000028          0      .use    text
  44.           =00000008          0      .use    bss
  45.                              0      .global    _Char1Glob
  46.           =00000008          0      .align
  47. 00000008                     0  _Char1Glob:    .block    1
  48.           =00000028          0      .use    text
  49.           =00000009          0      .use    bss
  50.                              0      .global    _Char2Glob
  51.           =0000000c          0      .align
  52. 0000000c                     0  _Char2Glob:    .block    1
  53.           =00000028          0      .use    text
  54.           =0000000d          0      .use    bss
  55.  
  56.  
  57. Am29000-ASM  V2.21                                                                                                        Page    2
  58.                              0      .global    _Array1Glob
  59.           =00000010          0      .align
  60. 00000010                     0  _Array1Glob:    .block    204
  61.           =00000028          0      .use    text
  62.           =000000dc          0      .use    bss
  63.                              0      .global    _Array2Glob
  64.           =000000dc          0      .align
  65. 000000dc                     0  _Array2Glob:    .block    10404
  66.           =00000028          0      .use    text
  67.           =00002980          0      .use    bss
  68.                              0      .global    _PtrGlb
  69.           =00002980          0      .align
  70. 00002980                     0  _PtrGlb:    .block    4
  71.           =00000028          0      .use    text
  72.           =00002984          0      .use    bss
  73.                              0      .global    _PtrGlbNext
  74.           =00002984          0      .align
  75. 00002984                     0  _PtrGlbNext:    .block    4
  76.           =00000028          0      .use    text
  77.           =00000004          0      .use    data
  78.           =00000004          0      .align
  79. 00000004   44 48 52 59       0  L1:    .text    "DHRYSTONE PROGRAM, SOME STRING\0"
  80. 00000008   53 54 4f 4e       0  
  81. 0000000c   45 20 50 52       0  
  82. 00000010   4f 47 52 41       0  
  83. 00000014   4d 2c 20 53       0  
  84. 00000018   4f 4d 45 20       0  
  85. 0000001c   53 54 52 49       0  
  86. 00000020   4e 47 00          0  
  87.           =00000024          0      .align
  88. 00000024   44 48 52 59       0  L2:    .text    "DHRYSTONE PROGRAM, 1'ST STRING\0"
  89. 00000028   53 54 4f 4e       0  
  90. 0000002c   45 20 50 52       0  
  91. 00000030   4f 47 52 41       0  
  92. 00000034   4d 2c 20 31       0  
  93. 00000038   27 53 54 20       0  
  94. 0000003c   53 54 52 49       0  
  95. 00000040   4e 47 00          0  
  96.           =00000044          0      .align
  97. 00000044   44 48 52 59       0  L3:    .text    "DHRYSTONE PROGRAM, 2'ND STRING\0"
  98. 00000048   53 54 4f 4e       0  
  99. 0000004c   45 20 50 52       0  
  100. 00000050   4f 47 52 41       0  
  101. 00000054   4d 2c 20 32       0  
  102. 00000058   27 4e 44 20       0  
  103. 0000005c   53 54 52 49       0  
  104. 00000060   4e 47 00          0  
  105.                              0  ;lit    .seg    lit
  106.                              0  ;    .use    lit
  107.           =00000064          0      .align
  108. 00000064   64 72 79 2e       0  L4:    .text    "dry.out\0"
  109.  
  110.  
  111. Am29000-ASM  V2.21                                                                                                        Page    3
  112. 00000068   6f 75 74 00       0  
  113.           =0000006c          0      .align
  114. 0000006c   77 00             0  L5:    .text    "w\0"
  115.           =00000070          0      .align
  116. 00000070   44 68 72 79       0  L6:    .text    "Dhrystone time (in cycles) for \0"
  117. 00000074   73 74 6f 6e       0  
  118. 00000078   65 20 74 69       0  
  119. 0000007c   6d 65 20 28       0  
  120. 00000080   69 6e 20 63       0  
  121. 00000084   79 63 6c 65       0  
  122. 00000088   73 29 20 66       0  
  123. 0000008c   6f 72 20 00       0  
  124.           =00000090          0      .align
  125. 00000090   20 70 61 73       0  L7:    .text    " passes = \0"
  126. 00000094   73 65 73 20       0  00000098   3d 20 00          0  
  127.           =0000009c          0      .align
  128. 0000009c   0a 00             0  L8:    .text    "\n\0"
  129.           =000000a0          0      .align
  130. 000000a0   54 68 69 73       0  L9:    .text    "This machine benchmarks at \0"
  131. 000000a4   20 6d 61 63       0  
  132. 000000a8   68 69 6e 65       0  
  133. 000000ac   20 62 65 6e       0  
  134. 000000b0   63 68 6d 61       0  
  135. 000000b4   72 6b 73 20       0  
  136. 000000b8   61 74 20 00       0  
  137.           =000000bc          0      .align
  138. 000000bc   20 64 68 72       0  L10:    .text    " dhrystones/second\n\0"
  139. 000000c0   79 73 74 6f       0  
  140. 000000c4   6e 65 73 2f       0  
  141. 000000c8   73 65 63 6f       0  
  142. 000000cc   6e 64 0a 00       0  
  143.                              0  ;
  144.                              0  ;/*
  145.                              0  ; * Package 1
  146.                              0  ; */
  147.                              0  ;int        IntGlob;
  148.                              0  ;boolean        BoolGlob;
  149.                              0  ;char        Char1Glob;
  150.                              0  ;char        Char2Glob;
  151.                              0  ;Array1Dim    Array1Glob;
  152.                              0  ;Array2Dim    Array2Glob;
  153.                              0  ;RecordPtr    PtrGlb;
  154.                              0  ;RecordPtr    PtrGlbNext;
  155.                              0  ;
  156.                              0  ;Proc0()
  157.           =00000028          0      .use    text
  158.                              0      .global    _Proc0
  159.                              0  ;--------------| Proc0 |-----------------------
  160.                              0  _Proc0:
  161. 00000028   25010160          0      sub    gr01,gr01,96
  162.  
  163.  
  164. Am29000-ASM  V2.21                                                                                                        Page    4
  165. 0000002c   5e80017e          0      asgeu    80#h,gr01,gr7e
  166. 00000030   15810168          0      add    lr01,gr01,104
  167. 00000034   257d7dcc          0      sub    gr7d,gr7d,204
  168.                              0  ;{
  169.                              0  ;    OneToFifty        IntLoc1;
  170.                              0  ;    REG OneToFifty        IntLoc2;
  171.                              0  ;    OneToFifty        IntLoc3;
  172.                              0  ;    REG char        CharLoc;
  173.                              0  ;    REG char        CharIndex;
  174.                              0  ;    Enumeration         EnumLoc;
  175.                              0  ;    String30        String1Loc;
  176.                              0  ;    String30        String2Loc;
  177.                              0  ;    extern char        *malloc();
  178.                              0  ;    register unsigned int    i;
  179.                              0  ;
  180.                              0  ;#ifdef TIME
  181.                              0  ;    long            time();
  182.                              0  ;    long            starttime;
  183.                              0  ;    long            benchtime;
  184.                              0  ;    long            nulltime;
  185.                              0  ;
  186.                              0  ;    starttime = time( (long *) 0);
  187. 00000038   a8ff80f2       X  0      call    lr00,_time
  188. 0000003c   03008200          0      const    lr02,0
  189. 00000040   15946000          0      add    lr14,gr60,0
  190.                              0  ;    for (i = 0; i < LOOPS; ++i);
  191. 00000044   03009500          0      const    lr15,0
  192.                              0  L00302:
  193. 00000048   15959501          0      add    lr15,lr15,1
  194. 0000004c   43799532          0      cpltu    gr79,lr15,50
  195. 00000050   acff79fe          0      jmpt    gr79,L00302
  196. 00000054   70400101          0      aseq    40#h,gr01,gr01
  197.                              0  ;    nulltime = time( (long *) 0) - starttime; /* Computes o'head of loop */
  198. 00000058   a8ff80ea       X  0      call    lr00,_time
  199. 0000005c   03008200          0      const    lr02,0
  200. 00000060   24936094          0      sub    lr13,gr60,lr14
  201.                              0  ;#endif
  202.                              0  ;#ifdef TIMES
  203.                              0  ;    time_t            starttime;
  204.                              0  ;    time_t            benchtime;
  205.                              0  ;    time_t            nulltime;
  206.                              0  ;    struct tms        tms;
  207.                              0  ;
  208.                              0  ;        times(&tms); starttime = tms.tms_utime;
  209.                              0  ;    for (i = 0; i < LOOPS; ++i);
  210.                              0  ;        times(&tms);
  211.                              0  ;    nulltime = tms.tms_utime - starttime; /* Computes overhead of looping */
  212.                              0  ;#endif
  213.                              0  ;#ifdef HCTIME
  214.                              0  ;    typedef long time_t;
  215.                              0  ;    time_t            starttime;
  216.  
  217.  
  218. Am29000-ASM  V2.21                                                                                                        Page    5
  219.                              0  ;    time_t            benchtime;
  220.                              0  ;    time_t            nulltime;
  221.                              0  ;        starttime = clock();
  222.                              0  ;    for (i = 0; i < LOOPS; ++i);
  223.                              0  ;    nulltime = clock() - starttime; /* Computes overhead of looping */
  224.                              0  ;#endif
  225.                              0  ;
  226.                              0  ;    PtrGlbNext = (RecordPtr) malloc(sizeof(RecordType));
  227. 00000064   a8ff80e7       X  0      call    lr00,_malloc
  228. 00000068   03008230          0      const    lr02,48
  229. 0000006c   03298384       R  0      const    lr03,_PtrGlbNext
  230. 00000070   a8ff80e4       X  0      call    lr00,_malloc
  231.                              0  ;    PtrGlb = (RecordPtr) malloc(sizeof(RecordType));
  232. 00000074   1e006083          0      store    0,gr60,lr03
  233. 00000078   03299280       R  0      const    lr12,_PtrGlb
  234. 0000007c   1e006092          0      store    0,gr60,lr12
  235.                              0  ;    PtrGlb->PtrComp = PtrGlbNext;
  236. 00000080   16007983          0      load    0,gr79,lr03
  237. 00000084   1e007960          0      store    0,gr79,gr60
  238.                              0  ;    PtrGlb->Discr = Ident1;
  239. 00000088   03007800          0      const    gr78,0
  240. 0000008c   16006092          0      load    0,gr60,lr12
  241. 00000090   15796004          0      add    gr79,gr60,4
  242. 00000094   1e007879          0      store    0,gr78,gr79
  243.                              0  ;    PtrGlb->EnumComp = Ident3;
  244. 00000098   03009102          0      const    lr11,2
  245. 0000009c   15796008          0      add    gr79,gr60,8
  246. 000000a0   1e009179          0      store    0,lr11,gr79
  247.                              0  ;    PtrGlb->IntComp = 40;
  248. 000000a4   03007828          0      const    gr78,40
  249. 000000a8   1579600c          0      add    gr79,gr60,12
  250. 000000ac   1e007879          0      store    0,gr78,gr79
  251.                              0  ;    strcpy(PtrGlb->StringComp, "DHRYSTONE PROGRAM, SOME STRING");
  252. 000000b0   15826010          0      add    lr02,gr60,16
  253. 000000b4   03008304       R  0      const    lr03,L1
  254. 000000b8   a8ff80d2       X  0      call    lr00,__blmov
  255. 000000bc   0300841f          0      const    lr04,31
  256.                              0  ;#ifndef    GOOF
  257.                              0  ;    strcpy(String1Loc, "DHRYSTONE PROGRAM, 1'ST STRING");    /*GOOF*/
  258. 000000c0   030079a0          0      const    gr79,160
  259. 000000c4   1490797d          0      add    lr10,gr79,gr7d
  260. 000000c8   03007924       R  0      const    gr79,L2
  261. 000000cc   15829000          0      add    lr02,lr10,0
  262. 000000d0   15837900          0      add    lr03,gr79,0
  263. 000000d4   03008406          0      const    lr04,6
  264.                              0  LL03013:
  265. 000000d8   16007a83          0      load    0,gr7a,lr03
  266. 000000dc   15838304          0      add    lr03,lr03,4
  267. 000000e0   1e007a82          0      store    0,gr7a,lr02
  268. 000000e4   b4ff84fd          0      jmpfdec    lr04,LL03013
  269. 000000e8   15828204          0      add    lr02,lr02,4
  270.  
  271.  
  272. Am29000-ASM  V2.21                                                                                                        Page    6
  273.                              0  ;#endif
  274.                              0  ;    Array2Glob[8][7] = 10;    /* Was missing in published program */
  275. 000000ec   0300780a          0      const    gr78,10
  276. 000000f0   03077958       R  0      const    gr79,_Array2Glob+1660
  277. 000000f4   1e007879          0      store    0,gr78,gr79
  278.                              0  ;
  279.                              0  ;/*****************
  280.                              0  ;-- Start Timer --
  281.                              0  ;*****************/
  282.                              0  ;#ifdef TIME
  283.                              0  ;    starttime = time( (long *) 0);
  284. 000000f8   a8ff80c2       X  0      call    lr00,_time
  285. 000000fc   03008200          0      const    lr02,0
  286. 00000100   15946000          0      add    lr14,gr60,0
  287.                              0  ;#endif
  288.                              0  ;#ifdef TIMES
  289.                              0  ;        times(&tms); starttime = tms.tms_utime;
  290.                              0  ;#endif
  291.                              0  ;#ifdef HCTIME
  292.                              0  ;    starttime = clock();
  293.                              0  ;#endif    
  294.                              0  ;    for (i = 0; i < LOOPS; ++i)
  295. 00000104   03009500          0      const    lr15,0
  296. 00000108   030076c8          0      const    gr76,200
  297. 0000010c   03007780          0      const    gr77,128
  298. 00000110   03008d44       R  0      const    lr0d,L3
  299. 00000114   03008c01          0      const    lr0c,1
  300. 00000118   030078c0          0      const    gr78,192
  301. 0000011c   03008a04       R  0      const    lr0a,_BoolGlob
  302. 00000120   030079c4          0      const    gr79,196
  303. 00000124   03008810       R  0      const    lr08,_Array1Glob
  304. 00000128   030087dc       R  0      const    lr07,_Array2Glob
  305. 0000012c   0300860c       R  0      const    lr06,_Char2Glob
  306. 00000130   148f767d          0      add    lr0f,gr76,gr7d
  307. 00000134   148e777d          0      add    lr0e,gr77,gr7d
  308. 00000138   148b787d          0      add    lr0b,gr78,gr7d
  309. 0000013c   1489797d          0      add    lr09,gr79,gr7d
  310.                              0  L00304:
  311.                              0  ;    {
  312.                              0  ;
  313.                              0  ;        Proc5();
  314. 00000140   a80080e7          0      call    lr00,_Proc5
  315. 00000144   70400101          0      aseq    40#h,gr01,gr01
  316.                              0  ;        Proc4();
  317. 00000148   a80080e1          0      call    lr00,_Proc4
  318. 0000014c   70400101          0      aseq    40#h,gr01,gr01
  319.                              0  ;        IntLoc1 = 2;
  320. 00000150   1e00918f          0      store    0,lr11,lr0f
  321.                              0  ;        IntLoc2 = 3;
  322. 00000154   03009603          0      const    lr16,3
  323.                              0  ;        strcpy(String2Loc, "DHRYSTONE PROGRAM, 2'ND STRING");
  324.  
  325.  
  326. Am29000-ASM  V2.21                                                                                                        Page    7
  327. 00000158   15828e00          0      add    lr02,lr0e,0
  328. 0000015c   15838d00          0      add    lr03,lr0d,0
  329. 00000160   03008406          0      const    lr04,6
  330.                              0  LL03014:
  331. 00000164   16007a83          0      load    0,gr7a,lr03
  332. 00000168   15838304          0      add    lr03,lr03,4
  333. 0000016c   1e007a82          0      store    0,gr7a,lr02
  334. 00000170   b4ff84fd          0      jmpfdec    lr04,LL03014
  335. 00000174   15828204          0      add    lr02,lr02,4
  336.                              0  ;        EnumLoc = Ident2;
  337. 00000178   1e008c8b          0      store    0,lr0c,lr0b
  338.                              0  ;        BoolGlob = ! Func2(String1Loc, String2Loc);
  339. 0000017c   15829000          0      add    lr02,lr10,0
  340. 00000180   a801804d          0      call    lr00,_Func2
  341. 00000184   15838e00          0      add    lr03,lr0e,0
  342. 00000188   61796000          0      cpeq    gr79,gr60,0
  343. 0000018c   8379791f          0      srl    gr79,gr79,31
  344. 00000190   1e00798a          0      store    0,gr79,lr0a
  345.                              0  ;        while (IntLoc1 < IntLoc2)
  346. 00000194   1600848f          0      load    0,lr04,lr0f
  347. 00000198   4d798403          0      cpge    gr79,lr04,3
  348. 0000019c   ac007910          0      jmpt    gr79,L00306
  349. 000001a0   70400101          0      aseq    40#h,gr01,gr01
  350.                              0  L00305:
  351.                              0  ;        {
  352.                              0  ;            IntLoc3 = 5 * IntLoc1 - IntLoc2;
  353. 000001a4   81798402          0      sll    gr79,lr04,2
  354. 000001a8   14797984          0      add    gr79,gr79,lr04
  355. 000001ac   24797996          0      sub    gr79,gr79,lr16
  356. 000001b0   1e007989          0      store    0,gr79,lr09
  357.                              0  ;            Proc7(IntLoc1, IntLoc2, &IntLoc3);
  358. 000001b4   15828400          0      add    lr02,lr04,0
  359. 000001b8   15839600          0      add    lr03,lr16,0
  360. 000001bc   a8018006          0      call    lr00,_Proc7
  361. 000001c0   15848900          0      add    lr04,lr09,0
  362.                              0  ;            ++IntLoc1;
  363. 000001c4   1600848f          0      load    0,lr04,lr0f
  364. 000001c8   15848401          0      add    lr04,lr04,1
  365. 000001cc   1e00848f          0      store    0,lr04,lr0f
  366. 000001d0   40798496          0      cplt    gr79,lr04,lr16
  367. 000001d4   acff79f4          0      jmpt    gr79,L00305
  368. 000001d8   70400101          0      aseq    40#h,gr01,gr01
  369.                              0  L00306:
  370.                              0  ;        }
  371.                              0  ;        Proc8(Array1Glob, Array2Glob, IntLoc1, IntLoc3);
  372. 000001dc   16008589          0      load    0,lr05,lr09
  373. 000001e0   15828800          0      add    lr02,lr08,0
  374. 000001e4   a8018000          0      call    lr00,_Proc8
  375. 000001e8   15838700          0      add    lr03,lr07,0
  376.                              0  ;        Proc1(PtrGlb);
  377. 000001ec   a8008053          0      call    lr00,_Proc1
  378.  
  379.  
  380. Am29000-ASM  V2.21                                                                                                        Page    8
  381. 000001f0   16008292          0      load    0,lr02,lr12
  382.                              0  ;        for (CharIndex = 'A'; CharIndex <= Char2Glob; ++CharIndex)
  383. 000001f4   03008541          0      const    lr05,65
  384. 000001f8   16107986          0      load    16,gr79,lr06
  385. 000001fc   48798579          0      cpgt    gr79,lr05,gr79
  386. 00000200   ac007911          0      jmpt    gr79,L003010
  387. 00000204   70400101          0      aseq    40#h,gr01,gr01
  388.                              0  L00307:
  389.                              0  ;            if (EnumLoc == Func1(CharIndex, 'C'))
  390. 00000208   1600848b          0      load    0,lr04,lr0b
  391. 0000020c   15828500          0      add    lr02,lr05,0
  392. 00000210   a801801f          0      call    lr00,_Func1
  393. 00000214   03008343          0      const    lr03,67
  394. 00000218   62798460          0      cpneq    gr79,lr04,gr60
  395. 0000021c   ac007905          0      jmpt    gr79,L00309
  396. 00000220   70400101          0      aseq    40#h,gr01,gr01
  397.                              0  ;                Proc6(Ident1, &EnumLoc);
  398. 00000224   03008200          0      const    lr02,0
  399. 00000228   a80080b4          0      call    lr00,_Proc6
  400. 0000022c   15838b00          0      add    lr03,lr0b,0
  401.                              0  L00309:
  402. 00000230   15858501          0      add    lr05,lr05,1
  403. 00000234   16107986          0      load    16,gr79,lr06
  404. 00000238   44798579          0      cple    gr79,lr05,gr79
  405. 0000023c   acff79f3          0      jmpt    gr79,L00307
  406. 00000240   70400101          0      aseq    40#h,gr01,gr01
  407.                              0  L003010:
  408.                              0  ;        IntLoc3 = IntLoc2 * IntLoc1;
  409. 00000244   1600848f          0      load    0,lr04,lr0f
  410. 00000248   9e798496          0      setip    gr79,lr04,lr16
  411. 0000024c   a8ff806d       X  0      call    lr00,__ulmul
  412.                              0      nop
  413. 00000250   70400101          1      aseq    40#h,gr01,gr01
  414.                              1      .endm
  415. 00000254   1e007989          0      store    0,gr79,lr09
  416.                              0  ;        IntLoc2 = IntLoc3 / IntLoc1;
  417.                              0  ;        IntLoc2 = 7 * (IntLoc3 - IntLoc2) - IntLoc1;
  418.                              0  ;        Proc2(&IntLoc1);
  419. 00000258   a8008073          0      call    lr00,_Proc2
  420. 0000025c   15828f00          0      add    lr02,lr0f,0
  421. 00000260   15959501          0      add    lr15,lr15,1
  422. 00000264   43799532          0      cpltu    gr79,lr15,50
  423. 00000268   acff79b6          0      jmpt    gr79,L00304
  424. 0000026c   70400101          0      aseq    40#h,gr01,gr01
  425.                              0  ;    }
  426.                              0  ;
  427.                              0  ;/*****************
  428.                              0  ;-- Stop Timer --
  429.                              0  ;*****************/
  430.                              0  ;
  431.                              0  ;#ifdef TIME
  432.  
  433.  
  434. Am29000-ASM  V2.21                                                                                                        Page    9
  435.                              0  ;    {
  436.                              0  ;    FILE *fp, *fopen();
  437.                              0  ;    char buff[128];
  438.                              0  ;    benchtime = time( (long *) 0) - starttime - nulltime;
  439. 00000270   a8ff8064       X  0      call    lr00,_time
  440. 00000274   03008200          0      const    lr02,0
  441. 00000278   24796094          0      sub    gr79,gr60,lr14
  442. 0000027c   24867993          0      sub    lr06,gr79,lr13
  443.                              0  ;    fp=fopen("dry.out","w");
  444. 00000280   03008264       R  0      const    lr02,L4
  445. 00000284   a8ff805f       X  0      call    lr00,_fopen
  446. 00000288   0300836c       R  0      const    lr03,L5
  447. 0000028c   15856000          0      add    lr05,gr60,0
  448.                              0  ;/*    PRINTF("Dhrystone time for %ld passes = %ld\n"); */
  449.                              0  ;    fputs("Dhrystone time (in cycles) for ",fp);
  450. 00000290   03008270       R  0      const    lr02,L6
  451. 00000294   a8ff805b       X  0      call    lr00,_fputs
  452. 00000298   15838500          0      add    lr03,lr05,0
  453.                              0  ;    itoa(LOOPS,buff);
  454. 0000029c   03007900          0      const    gr79,0
  455. 000002a0   1484797d          0      add    lr04,gr79,gr7d
  456. 000002a4   03008232          0      const    lr02,50
  457. 000002a8   a8ff8056       X  0      call    lr00,_itoa
  458. 000002ac   15838400          0      add    lr03,lr04,0
  459.                              0  ;    fputs(buff,fp);
  460. 000002b0   15828400          0      add    lr02,lr04,0
  461. 000002b4   a8ff8053       X  0      call    lr00,_fputs
  462. 000002b8   15838500          0      add    lr03,lr05,0
  463.                              0  ;    fputs(" passes = ",fp);
  464. 000002bc   a8ff8051       X  0      call    lr00,_fputs
  465. 000002c0   03008290       R  0      const    lr02,L7
  466.                              0  ;    itoa(benchtime,buff);
  467. 000002c4   15828600          0      add    lr02,lr06,0
  468. 000002c8   a8ff804e       X  0      call    lr00,_itoa
  469. 000002cc   15838400          0      add    lr03,lr04,0
  470.                              0  ;    fputs(buff,fp);
  471. 000002d0   15828400          0      add    lr02,lr04,0
  472. 000002d4   a8ff804b       X  0      call    lr00,_fputs
  473. 000002d8   15838500          0      add    lr03,lr05,0
  474.                              0  ;    fputs("\n",fp);
  475. 000002dc   a8ff8049       X  0      call    lr00,_fputs
  476. 000002e0   0300829c       R  0      const    lr02,L8
  477.                              0  ;/*    printf("This machine benchmarks at %ld dhrystones/second\n",
  478.                              0  ;        ((long) LOOPS) / benchtime);
  479.                              0  ;        */
  480.                              0  ;    fputs("This machine benchmarks at ",fp);
  481. 000002e4   a8ff8047       X  0      call    lr00,_fputs
  482. 000002e8   030082a0       R  0      const    lr02,L9
  483.                              0  ;    itoa((LOOPS*PROC_SPEED)/benchtime,buff);
  484. 000002ec   037c7980          0      const    gr79,31872
  485. 000002f0   024a7981          0      consth    gr79,19073
  486.  
  487.  
  488. Am29000-ASM  V2.21                                                                                                        Page   10
  489. 000002f4   9e827986          0      setip    lr02,gr79,lr06
  490. 000002f8   a8ff8042       X  0      call    lr00,__sldiv
  491.                              0      nop
  492. 000002fc   70400101          1      aseq    40#h,gr01,gr01
  493.                              1      .endm
  494. 00000300   a8ff8040       X  0      call    lr00,_itoa
  495. 00000304   15838400          0      add    lr03,lr04,0
  496.                              0  ;    fputs(buff,fp);
  497. 00000308   15828400          0      add    lr02,lr04,0
  498. 0000030c   a8ff803d       X  0      call    lr00,_fputs
  499. 00000310   15838500          0      add    lr03,lr05,0
  500.                              0  ;    fputs(" dhrystones/second\n",fp);
  501. 00000314   a8ff803b       X  0      call    lr00,_fputs
  502. 00000318   030082bc       R  0      const    lr02,L10
  503.                              0  ;    fclose(fp);
  504. 0000031c   a8ff8039       X  0      call    lr00,_fclose
  505. 00000320   15828500          0      add    lr02,lr05,0
  506.                              0  ;    }
  507.                              0  ;#endif
  508.                              0  ;#ifdef TIMES
  509.                              0  ;        times(&tms);
  510.                              0  ;    benchtime = tms.tms_utime - starttime - nulltime;
  511.                              0  ;    printf("Dhrystone time for %ld passes = %ld\n",
  512.                              0  ;        (long) LOOPS, benchtime/HZ);
  513.                              0  ;    printf("This machine benchmarks at %ld dhrystones/second\n",
  514.                              0  ;        ((long) LOOPS) * HZ / benchtime);
  515.                              0  ;#endif
  516.                              0  ;#ifdef HCTIME
  517.                              0  ;    benchtime = clock() - starttime - nulltime;
  518.                              0  ;    printf("Dhrystone time for %ld passes = %ld\n",
  519.                              0  ;        (long) LOOPS, benchtime/HZ);
  520.                              0  ;    printf("This machine benchmarks at %ld dhrystones/second\n",
  521.                              0  ;        ((long) LOOPS) * HZ / benchtime);
  522.                              0  ;#endif
  523.                              0  ;
  524.                              0  ;}
  525. 00000324   157d7dcc          0      add    gr7d,gr7d,204
  526. 00000328   15010160          0      add    gr01,gr01,96
  527. 0000032c   70400101          0      aseq    40#h,gr01,gr01
  528. 00000330   c0000080          0      jmpi    lr00
  529. 00000334   5681817f          0      asleu    81#h,lr01,gr7f
  530.                              0  ;/*
  531.                              0  ;pragma on(trace_il);
  532.                              0  ;pragma on(trace_color);
  533.                              0  ;*/
  534.                              0  ;
  535.                              0  ;Proc1(PtrParIn)
  536.                              0      .global    _Proc1
  537.                              0  ;--------------| Proc1 |-----------------------
  538.                              0  _Proc1:
  539.                              0  ; Codegen note: In coming parameters starts at lr08
  540.  
  541.  
  542. Am29000-ASM  V2.21                                                                                                        Page   11
  543. 00000338   25010118          0      sub    gr01,gr01,24
  544. 0000033c   5e80017e          0      asgeu    80#h,gr01,gr7e
  545. 00000340   15810124          0      add    lr01,gr01,36
  546.                              0  ;REG RecordPtr    PtrParIn;
  547.                              0  ;{
  548.                              0  ;#define    NextRecord    (*(PtrParIn->PtrComp))
  549.                              0  ;
  550.                              0  ;    structassign(NextRecord, *PtrGlb);
  551. 00000344   03298580       R  0      const    lr05,_PtrGlb
  552. 00000348   16008385          0      load    0,lr03,lr05
  553. 0000034c   16008288          0      load    0,lr02,lr08
  554. 00000350   0300840b          0      const    lr04,11
  555.                              0  LL0395:
  556. 00000354   16007a83          0      load    0,gr7a,lr03
  557. 00000358   15838304          0      add    lr03,lr03,4
  558. 0000035c   1e007a82          0      store    0,gr7a,lr02
  559. 00000360   b4ff84fd          0      jmpfdec    lr04,LL0395
  560. 00000364   15828204          0      add    lr02,lr02,4
  561.                              0  ;    PtrParIn->IntComp = 5;
  562. 00000368   03007805          0      const    gr78,5
  563. 0000036c   1579880c          0      add    gr79,lr08,12
  564. 00000370   1e007879          0      store    0,gr78,gr79                             0  ;    NextRecord.IntComp = PtrParIn->IntComp;
  565. 00000374   16008388          0      load    0,lr03,lr08
  566. 00000378   1584830c          0      add    lr04,lr03,12
  567. 0000037c   1e007884          0      store    0,gr78,lr04
  568.                              0  ;    NextRecord.PtrComp = PtrParIn->PtrComp;
  569. 00000380   1e008383          0      store    0,lr03,lr03
  570.                              0  ;    Proc3(NextRecord.PtrComp);
  571. 00000384   16008388          0      load    0,lr03,lr08
  572. 00000388   a8008039          0      call    lr00,_Proc3
  573. 0000038c   16008283          0      load    0,lr02,lr03
  574.                              0  ;    if (NextRecord.Discr == Ident1)
  575. 00000390   16008388          0      load    0,lr03,lr08
  576. 00000394   15798304          0      add    gr79,lr03,4
  577. 00000398   16007979          0      load    0,gr79,gr79
  578. 0000039c   63797900          0      cpneq    gr79,gr79,0
  579. 000003a0   ac007916          0      jmpt    gr79,L00393
  580. 000003a4   70400101          0      aseq    40#h,gr01,gr01
  581.                              0  ;    {
  582.                              0  ;        NextRecord.IntComp = 6;
  583. 000003a8   03007906          0      const    gr79,6
  584. 000003ac   1584830c          0      add    lr04,lr03,12
  585. 000003b0   1e007984          0      store    0,gr79,lr04
  586.                              0  ;        Proc6(PtrParIn->EnumComp, &NextRecord.EnumComp);
  587. 000003b4   15798808          0      add    gr79,lr08,8
  588. 000003b8   16008279          0      load    0,lr02,gr79
  589. 000003bc   a800804f          0      call    lr00,_Proc6
  590. 000003c0   15838308          0      add    lr03,lr03,8
  591.                              0  ;        NextRecord.PtrComp = PtrGlb->PtrComp;
  592. 000003c4   16008385          0      load    0,lr03,lr05
  593.  
  594.  
  595. Am29000-ASM  V2.21                                                                                                        Page   12
  596. 000003c8   16007983          0      load    0,gr79,lr03
  597. 000003cc   16008388          0      load    0,lr03,lr08
  598. 000003d0   1e007983          0      store    0,gr79,lr03
  599.                              0  ;        Proc7(NextRecord.IntComp, 10, &NextRecord.IntComp);
  600. 000003d4   16008388          0      load    0,lr03,lr08
  601. 000003d8   1584830c          0      add    lr04,lr03,12
  602. 000003dc   16008284          0      load    0,lr02,lr04
  603. 000003e0   a800807d          0      call    lr00,_Proc7
  604. 000003e4   0300830a          0      const    lr03,10
  605. 000003e8   15010118          0      add    gr01,gr01,24
  606. 000003ec   70400101          0      aseq    40#h,gr01,gr01
  607. 000003f0   c0000080          0      jmpi    lr00
  608. 000003f4   5681817f          0      asleu    81#h,lr01,gr7f
  609.                              0  L00393:
  610.                              0  ;    }
  611.                              0  ;    else
  612.                              0  ;        structassign(*PtrParIn, NextRecord);
  613. 000003f8   15828800          0      add    lr02,lr08,0
  614. 000003fc   0300840b          0      const    lr04,11
  615.                              0  LL0396:
  616. 00000400   16007a83          0      load    0,gr7a,lr03
  617. 00000404   15838304          0      add    lr03,lr03,4
  618. 00000408   1e007a82          0      store    0,gr7a,lr02
  619. 0000040c   b4ff84fd          0      jmpfdec    lr04,LL0396
  620. 00000410   15828204          0      add    lr02,lr02,4
  621.                              0  L00394:
  622.                              0  ;
  623.                              0  ;#undef    NextRecord
  624.                              0  ;}
  625. 00000414   15010118          0      add    gr01,gr01,24
  626. 00000418   70400101          0      aseq    40#h,gr01,gr01
  627. 0000041c   c0000080          0      jmpi    lr00
  628. 00000420   5681817f          0      asleu    81#h,lr01,gr7f
  629.                              0  ;/*
  630.                              0  ;pragma off(trace_il);
  631.                              0  ;pragma off(trace_color);
  632.                              0  ;*/
  633.                              0  ;
  634.                              0  ;Proc2(IntParIO)
  635.                              0      .global    _Proc2
  636.                              0  ;--------------| Proc2 |-----------------------
  637.                              0  _Proc2:
  638.                              0  ; Codegen note: In coming parameters starts at lr02
  639.                              0  ;OneToFifty    *IntParIO;
  640.                              0  ;{
  641.                              0  ;    REG OneToFifty        IntLoc;
  642.                              0  ;    REG Enumeration        EnumLoc;
  643.                              0  ;
  644.                              0  ;    IntLoc = *IntParIO + 10;
  645. 00000424   16007982          0      load    0,gr79,lr02
  646. 00000428   1576790a          0      add    gr76,gr79,10
  647.  
  648.  
  649. Am29000-ASM  V2.21                                                                                                        Page   13
  650. 0000042c   03007908       R  0      const    gr79,_Char1Glob
  651. 00000430   16107979          0      load    16,gr79,gr79
  652. 00000434   63787941          0      cpneq    gr78,gr79,65
  653.                              0  L00412:
  654.                              0  ;    for(;;)
  655.                              0  ;    {
  656.                              0  ;        if (Char1Glob == 'A')
  657. 00000438   ac007808          0      jmpt    gr78,L00414
  658. 0000043c   70400101          0      aseq    40#h,gr01,gr01
  659.                              0  ;        {
  660.                              0  ;            --IntLoc;
  661. 00000440   25767601          0      sub    gr76,gr76,1
  662.                              0  ;            *IntParIO = IntLoc - IntGlob;00000444   03007900       R  0      const    gr79,_IntGlob
  663. 00000448   16007979          0      load    0,gr79,gr79
  664. 0000044c   24797679          0      sub    gr79,gr76,gr79
  665. 00000450   1e007982          0      store    0,gr79,lr02
  666.                              0  ;            EnumLoc = Ident1;
  667. 00000454   03007700          0      const    gr77,0
  668.                              0  L00414:
  669. 00000458   63797700          0      cpneq    gr79,gr77,0
  670.                              0  ;        }
  671.                              0  ;        if (EnumLoc == Ident1)
  672. 0000045c   acff79f7          0      jmpt    gr79,L00412
  673. 00000460   70400101          0      aseq    40#h,gr01,gr01
  674.                              0  ;            break;
  675.                              0  ;    }
  676.                              0  ;}
  677. 00000464   c0000080          0      jmpi    lr00
  678. 00000468   70400101          0      aseq    40#h,gr01,gr01
  679.                              0  ;
  680.                              0  ;Proc3(PtrParOut)
  681.                              0      .global    _Proc3
  682.                              0  ;--------------| Proc3 |-----------------------
  683.                              0  _Proc3:
  684.                              0  ; Codegen note: In coming parameters starts at lr08
  685. 0000046c   25010118          0      sub    gr01,gr01,24
  686. 00000470   5e80017e          0      asgeu    80#h,gr01,gr7e
  687. 00000474   15810124          0      add    lr01,gr01,36
  688.                              0  ;RecordPtr    *PtrParOut;
  689.                              0  ;{
  690.                              0  ;    if (PtrGlb != NULL)
  691. 00000478   03297880       R  0      const    gr78,_PtrGlb
  692. 0000047c   16007778          0      load    0,gr77,gr78
  693. 00000480   61797700          0      cpeq    gr79,gr77,0
  694. 00000484   ac007907          0      jmpt    gr79,L00433
  695. 00000488   70400101          0      aseq    40#h,gr01,gr01
  696.                              0  ;        *PtrParOut = PtrGlb->PtrComp;
  697. 0000048c   16007977          0      load    0,gr79,gr77
  698. 00000490   1e007988          0      store    0,gr79,lr08
  699. 00000494   03007900       R  0      const    gr79,_IntGlob
  700.  
  701.  
  702. Am29000-ASM  V2.21                                                                                                        Page   14
  703. 00000498   a0007905          0      jmp    L00434
  704. 0000049c   16007778          0      load    0,gr77,gr78
  705.                              0  L00433:
  706.                              0  ;    else
  707.                              0  ;        IntGlob = 100;
  708. 000004a0   03007864          0      const    gr78,100
  709. 000004a4   03007900       R  0      const    gr79,_IntGlob
  710. 000004a8   1e007879          0      store    0,gr78,gr79
  711.                              0  L00434:
  712. 000004ac   16008379          0      load    0,lr03,gr79
  713.                              0  ;    Proc7(10, IntGlob, &PtrGlb->IntComp);
  714. 000004b0   1584770c          0      add    lr04,gr77,12
  715. 000004b4   a8008048          0      call    lr00,_Proc7
  716. 000004b8   0300820a          0      const    lr02,10
  717.                              0  ;}
  718. 000004bc   15010118          0      add    gr01,gr01,24
  719. 000004c0   70400101          0      aseq    40#h,gr01,gr01
  720. 000004c4   c0000080          0      jmpi    lr00
  721. 000004c8   5681817f          0      asleu    81#h,lr01,gr7f
  722.                              0  ;
  723.                              0  ;Proc4()
  724.                              0      .global    _Proc4
  725.                              0  ;--------------| Proc4 |-----------------------
  726.                              0  _Proc4:
  727.                              0  ;{
  728.                              0  ;    REG boolean    BoolLoc;
  729.                              0  ;
  730.                              0  ;    BoolLoc = Char1Glob == 'A';
  731.                              0  ;    BoolLoc |= BoolGlob;
  732.                              0  ;    Char2Glob = 'B';
  733. 000004cc   03007842          0      const    gr78,66
  734. 000004d0   0300790c       R  0      const    gr79,_Char2Glob
  735. 000004d4   c0000080          0      jmpi    lr00
  736.                              0  ;}
  737. 000004d8   1e007879          0      store    0,gr78,gr79
  738.                              0  ;
  739.                              0  ;Proc5()
  740.                              0      .global    _Proc5
  741.                              0  ;--------------| Proc5 |-----------------------
  742.                              0  _Proc5:
  743.                              0  ;{
  744.                              0  ;    Char1Glob = 'A';
  745. 000004dc   03007841          0      const    gr78,65
  746. 000004e0   03007908       R  0      const    gr79,_Char1Glob
  747. 000004e4   1e007879          0      store    0,gr78,gr79
  748.                              0  ;    BoolGlob = FALSE;
  749. 000004e8   03007800          0      const    gr78,0
  750. 000004ec   03007904       R  0      const    gr79,_BoolGlob
  751. 000004f0   c0000080          0      jmpi    lr00
  752.                              0  ;}
  753. 000004f4   1e007879          0      store    0,gr78,gr79
  754.  
  755.  
  756. Am29000-ASM  V2.21                                                                                                        Page   15
  757.                              0  ;
  758.                              0  ;extern boolean Func3();
  759.                              0  ;
  760.                              0  ;Proc6(EnumParIn, EnumParOut)
  761.                              0      .global    _Proc6
  762.                              0  ;--------------| Proc6 |-----------------------
  763.                              0  _Proc6:
  764.                              0  ; Codegen note: In coming parameters starts at lr06
  765. 000004f8   25010110          0      sub    gr01,gr01,16
  766. 000004fc   5e80017e          0      asgeu    80#h,gr01,gr7e
  767. 00000500   15810120          0      add    lr01,gr01,32
  768.                              0  ;REG Enumeration    EnumParIn;
  769.                              0  ;REG Enumeration    *EnumParOut;
  770.                              0  ;{
  771.                              0  ;    *EnumParOut = EnumParIn;
  772. 00000504   1e008687          0      store    0,lr06,lr07
  773.                              0  ;    if (! Func3(EnumParIn) )
  774. 00000508   a8008097          0      call    lr00,_Func3
  775. 0000050c   15828600          0      add    lr02,lr06,0
  776. 00000510   63796000          0      cpneq    gr79,gr60,0
  777. 00000514   ac007904          0      jmpt    gr79,L004010
  778. 00000518   70400101          0      aseq    40#h,gr01,gr01
  779.                              0  ;        *EnumParOut = Ident4;
  780. 0000051c   03007903          0      const    gr79,3
  781. 00000520   1e007987          0      store    0,gr79,lr07
  782.                              0  L004010:
  783.                              0  ;    switch (EnumParIn)
  784. 00000524   4b798604          0      cpgtu    gr79,lr06,4
  785. 00000528   ac007927          0      jmpt    gr79,L004012
  786. 0000052c   70400101          0      aseq    40#h,gr01,gr01
  787. 00000530   81868602          0      sll    lr06,lr06,2
  788. 00000534   03007ad0       R  0      const    gr7a,LL04013
  789. 00000538   147a7a86          0      add    gr7a,gr7a,lr06
  790. 0000053c   1600867a          0      load    0,lr06,gr7a
  791. 00000540   c0000086          0      jmpi    lr06
  792. 00000544   70400101          0      aseq    40#h,gr01,gr01
  793.                              0  
  794.           =000000d0          0      .use    data
  795.                              0  LL04013:
  796. 000000d0   00000548       R  0      .word    L00403
  797. 000000d4   00000560       R  0      .word    L00404
  798. 000000d8   000005a4       R  0      .word    L00407
  799. 000000dc   000005c4       R  0      .word    L004012
  800. 000000e0   000005bc       R  0      .word    L00409
  801.                              0  
  802.           =00000548          0      .use    text
  803.                              0  L00403:
  804.                              0  ;    {
  805.                              0  ;    case Ident1:    *EnumParOut = Ident1; break;
  806. 00000548   03007900          0      const    gr79,0
  807. 0000054c   1e007987          0      store    0,gr79,lr07
  808.  
  809.  
  810. Am29000-ASM  V2.21                                                                                                        Page   16
  811. 00000550   15010110          0      add    gr01,gr01,16
  812. 00000554   70400101          0      aseq    40#h,gr01,gr01
  813. 00000558   c0000080          0      jmpi    lr00
  814. 0000055c   5681817f          0      asleu    81#h,lr01,gr7f
  815.                              0  L00404:
  816.                              0  ;    case Ident2:    if (IntGlob > 100) *EnumParOut = Ident1;
  817. 00000560   03007900       R  0      const    gr79,_IntGlob
  818. 00000564   16007979          0      load    0,gr79,gr79
  819. 00000568   45797964          0      cple    gr79,gr79,100
  820. 0000056c   ac007908          0      jmpt    gr79,L00406
  821. 00000570   70400101          0      aseq    40#h,gr01,gr01
  822. 00000574   03007900          0      const    gr79,0
  823. 00000578   1e007987          0      store    0,gr79,lr07
  824. 0000057c   15010110          0      add    gr01,gr01,16
  825. 00000580   70400101          0      aseq    40#h,gr01,gr01
  826. 00000584   c0000080          0      jmpi    lr00
  827. 00000588   5681817f          0      asleu    81#h,lr01,gr7f
  828.                              0  L00406:
  829.                              0  ;            else *EnumParOut = Ident4;
  830. 0000058c   03007903          0      const    gr79,3
  831. 00000590   1e007987          0      store    0,gr79,lr07
  832. 00000594   15010110          0      add    gr01,gr01,16
  833. 00000598   70400101          0      aseq    40#h,gr01,gr01
  834. 0000059c   c0000080          0      jmpi    lr00
  835. 000005a0   5681817f          0      asleu    81#h,lr01,gr7f
  836.                              0  L00407:
  837.                              0  ;            break;
  838.                              0  ;    case Ident3:    *EnumParOut = Ident2; break;
  839. 000005a4   03007901          0      const    gr79,1
  840. 000005a8   1e007987          0      store    0,gr79,lr07
  841. 000005ac   15010110          0      add    gr01,gr01,16
  842. 000005b0   70400101          0      aseq    40#h,gr01,gr01
  843. 000005b4   c0000080          0      jmpi    lr00
  844. 000005b8   5681817f          0      asleu    81#h,lr01,gr7f
  845.                              0  L00409:
  846.                              0  ;    case Ident4:    break;
  847.                              0  ;    case Ident5:    *EnumParOut = Ident3;
  848. 000005bc   03007902          0      const    gr79,2
  849. 000005c0   1e007987          0      store    0,gr79,lr07
  850.                              0  L004012:
  851.                              0  ;    }
  852.                              0  ;}
  853. 000005c4   15010110          0      add    gr01,gr01,16
  854. 000005c8   70400101          0      aseq    40#h,gr01,gr01
  855. 000005cc   c0000080          0      jmpi    lr00
  856. 000005d0   5681817f          0      asleu    81#h,lr01,gr7f
  857.                              0  ;
  858.                              0  ;Proc7(IntParI1, IntParI2, IntParOut)
  859.                              0      .global    _Proc7
  860.                              0  ;--------------| Proc7 |-----------------------
  861.                              0  _Proc7:
  862.  
  863.  
  864. Am29000-ASM  V2.21                                                                                                        Page   17
  865.                              0  ; Codegen note: In coming parameters starts at lr02
  866.                              0  ;OneToFifty    IntParI1;
  867.                              0  ;OneToFifty    IntParI2;
  868.                              0  ;OneToFifty    *IntParOut;
  869.                              0  ;{
  870.                              0  ;    REG OneToFifty    IntLoc;
  871.                              0  ;
  872.                              0  ;    IntLoc = IntParI1 + 2;
  873. 000005d4   15798202          0      add    gr79,lr02,2
  874.                              0  ;    *IntParOut = IntParI2 + IntLoc;
  875. 000005d8   14797983          0      add    gr79,gr79,lr03
  876. 000005dc   c0000080          0      jmpi    lr00
  877.                              0  ;}
  878. 000005e0   1e007984          0      store    0,gr79,lr04
  879.                              0  ;
  880.                              0  ;Proc8(Array1Par, Array2Par, IntParI1, IntParI2)
  881.                              0      .global    _Proc8
  882.                              0  ;--------------| Proc8 |-----------------------
  883.                              0  _Proc8:
  884.                              0  ; Codegen note: In coming parameters starts at lr02
  885.                              0  ;Array1Dim    Array1Par;
  886.                              0  ;Array2Dim    Array2Par;
  887.                              0  ;OneToFifty    IntParI1;
  888.                              0  ;OneToFifty    IntParI2;
  889.                              0  ;{
  890.                              0  ;    REG OneToFifty    IntLoc;
  891.                              0  ;    REG OneToFifty    IntIndex;
  892.                              0  ;
  893.                              0  ;    IntLoc = IntParI1 + 5;
  894. 000005e4   15738405          0      add    gr73,lr04,5
  895.                              0  ;    Array1Par[IntLoc] = IntParI2;
  896. 000005e8   81757302          0      sll    gr75,gr73,2
  897. 000005ec   14767582          0      add    gr76,gr75,lr02
  898. 000005f0   1e008576          0      store    0,lr05,gr76
  899.                              0  ;    Array1Par[IntLoc+1] = Array1Par[IntLoc];
  900. 000005f4   15797604          0      add    gr79,gr76,4
  901. 000005f8   1e008579          0      store    0,lr05,gr79
  902.                              0  ;    Array1Par[IntLoc+30] = IntLoc;
  903. 000005fc   15797678          0      add    gr79,gr76,120
  904. 00000600   1e007379          0      store    0,gr73,gr79
  905.                              0  ;    for (IntIndex = IntLoc; IntIndex <= (IntLoc+1); ++IntIndex)
  906. 00000604   15747300          0      add    gr74,gr73,0
  907. 00000608   15777301          0      add    gr77,gr73,1
  908. 0000060c   81797301          0      sll    gr79,gr73,1
  909. 00000610   14797973          0      add    gr79,gr79,gr73
  910. 00000614   81797903          0      sll    gr79,gr79,3
  911. 00000618   14797973          0      add    gr79,gr79,gr73
  912. 0000061c   81797901          0      sll    gr79,gr79,1
  913. 00000620   14797973          0      add    gr79,gr79,gr73
  914. 00000624   81797902          0      sll    gr79,gr79,2
  915. 00000628   14787983          0      add    gr78,gr79,lr03
  916.  
  917.  
  918. Am29000-ASM  V2.21                                                                                                        Page   18
  919. 0000062c   48797477          0      cpgt    gr79,gr74,gr77
  920. 00000630   ac007909          0      jmpt    gr79,L00383
  921. 00000634   70400101          0      aseq    40#h,gr01,gr01
  922.                              0  L00382:
  923.                              0  ;        Array2Par[IntLoc][IntIndex] = IntLoc;
  924. 00000638   81797402          0      sll    gr79,gr74,2
  925. 0000063c   14797978          0      add    gr79,gr79,gr78
  926. 00000640   1e007379          0      store    0,gr73,gr79
  927. 00000644   15747401          0      add    gr74,gr74,1
  928. 00000648   44797477          0      cple    gr79,gr74,gr77
  929. 0000064c   acff79fb          0      jmpt    gr79,L00382
  930. 00000650   70400101          0      aseq    40#h,gr01,gr01
  931.                              0  L00383:
  932.                              0  ;    ++Array2Par[IntLoc][IntLoc-1];
  933. 00000654   14777875          0      add    gr77,gr78,gr75
  934. 00000658   01ff79fc          0      constn    gr79,-4
  935. 0000065c   14787779          0      add    gr78,gr77,gr79
  936. 00000660   16007978          0      load    0,gr79,gr78
  937. 00000664   15797901          0      add    gr79,gr79,1
  938. 00000668   1e007978          0      store    0,gr79,gr78
  939.                              0  ;    Array2Par[IntLoc+20][IntLoc] = Array1Par[IntLoc];
  940. 0000066c   16008576          0      load    0,lr05,gr76
  941. 00000670   030f79f0          0      const    gr79,4080
  942. 00000674   14797779          0      add    gr79,gr77,gr79
  943. 00000678   1e008579          0      store    0,lr05,gr79
  944.                              0  ;    IntGlob = 5;
  945. 0000067c   03007805          0      const    gr78,5
  946. 00000680   03007900       R  0      const    gr79,_IntGlob
  947. 00000684   c0000080          0      jmpi    lr00
  948.                              0  ;}
  949. 00000688   1e007879          0      store    0,gr78,gr79
  950.                              0  ;
  951.                              0  ;Enumeration Func1(CharPar1, CharPar2)
  952.                              0      .global    _Func1
  953.                              0  ;--------------| Func1 |-----------------------
  954.                              0  _Func1:
  955.                              0  ; Codegen note: In coming parameters starts at lr02
  956. 0000068c   917882ff          0      and    gr78,lr02,255
  957. 00000690   917983ff          0      and    gr79,lr03,255
  958.                              0  ;CapitalLetter    CharPar1;
  959.                              0  ;CapitalLetter    CharPar2;
  960.                              0  ;{
  961.                              0  ;    REG CapitalLetter    CharLoc1;
  962.                              0  ;    REG CapitalLetter    CharLoc2;
  963.                              0  ;
  964.                              0  ;    CharLoc1 = CharPar1;
  965.                              0  ;    CharLoc2 = CharLoc1;
  966.                              0  ;    if (CharLoc2 != CharPar2)
  967. 00000694   60797879          0      cpeq    gr79,gr78,gr79
  968. 00000698   ac007904          0      jmpt    gr79,L00274
  969. 0000069c   70400101          0      aseq    40#h,gr01,gr01
  970.  
  971.  
  972. Am29000-ASM  V2.21                                                                                                        Page   19
  973.                              0  ;        return (Ident1);
  974. 000006a0   c0000080          0      jmpi    lr00
  975. 000006a4   03006000          0      const    gr60,0
  976.                              0  L00274:
  977.                              0  ;    else
  978.                              0  ;        return (Ident2);
  979. 000006a8   03006001          0      const    gr60,1
  980.                              0  L00275:
  981.                              0  ;}
  982. 000006ac   c0000080          0      jmpi    lr00
  983. 000006b0   70400101          0      aseq    40#h,gr01,gr01
  984.                              0  ;
  985.                              0  ;boolean Func2(StrParI1, StrParI2)
  986.                              0      .global    _Func2
  987.                              0  ;--------------| Func2 |-----------------------
  988.                              0  _Func2:
  989.                              0  ; Codegen note: In coming parameters starts at lr06
  990. 000006b4   25010110          0      sub    gr01,gr01,16
  991. 000006b8   5e80017e          0      asgeu    80#h,gr01,gr7e
  992. 000006bc   15810120          0      add    lr01,gr01,32
  993.                              0  ;String30    StrParI1;
  994.                              0  ;String30    StrParI2;
  995.                              0  ;{
  996.                              0  ;    REG OneToThirty        IntLoc;
  997.                              0  ;    REG CapitalLetter    CharLoc;
  998.                              0  ;
  999.                              0  ;    IntLoc = 1;
  1000. 000006c0   03007601          0      const    gr76,1
  1001.                              0  ;    while (IntLoc <= 1)
  1002.                              0  L00282:
  1003. 000006c4   14797687          0      add    gr79,gr76,lr07
  1004. 000006c8   14787686          0      add    gr78,gr76,lr06
  1005. 000006cc   15797901          0      add    gr79,gr79,1
  1006.                              0  ;        if (Func1(StrParI1[IntLoc], StrParI2[IntLoc+1]) == Ident1)
  1007. 000006d0   16108278          0      load    16,lr02,gr78
  1008. 000006d4   0b828200          0      exbyte    lr02,lr02,0
  1009. 000006d8   16108379          0      load    16,lr03,gr79
  1010. 000006dc   a8ff80ec          0      call    lr00,_Func1
  1011. 000006e0   0b838300          0      exbyte    lr03,lr03,0
  1012. 000006e4   63796000          0      cpneq    gr79,gr60,0
  1013. 000006e8   ac007904          0      jmpt    gr79,L00284
  1014. 000006ec   70400101          0      aseq    40#h,gr01,gr01
  1015.                              0  ;        {
  1016.                              0  ;            CharLoc = 'A';
  1017. 000006f0   03007741          0      const    gr77,65
  1018.                              0  ;            ++IntLoc;
  1019. 000006f4   15767601          0      add    gr76,gr76,1
  1020.                              0  L00284:
  1021. 000006f8   45797601          0      cple    gr79,gr76,1
  1022. 000006fc   acff79f2          0      jmpt    gr79,L00282
  1023. 00000700   70400101          0      aseq    40#h,gr01,gr01
  1024.  
  1025.  
  1026. Am29000-ASM  V2.21                                                                                                        Page   20
  1027.                              0  L00288:
  1028.                              0  ;        }
  1029.                              0  ;    if (CharLoc >= 'W' && CharLoc <= 'Z')
  1030.                              0  ;        IntLoc = 7;
  1031.                              0  ;    if (CharLoc == 'X')
  1032. 00000704   63797758          0      cpneq    gr79,gr77,88
  1033. 00000708   ac007907          0      jmpt    gr79,L002811
  1034. 0000070c   70400101          0      aseq    40#h,gr01,gr01
  1035.                              0  ;        return(TRUE);
  1036. 00000710   03006001          0      const    gr60,1
  1037. 00000714   15010110          0      add    gr01,gr01,16
  1038. 00000718   70400101          0      aseq    40#h,gr01,gr01
  1039. 0000071c   c0000080          0      jmpi    lr00
  1040. 00000720   5681817f          0      asleu    81#h,lr01,gr7f
  1041.                              0  L002811:
  1042.                              0  ;    else
  1043.                              0  ;    {
  1044.                              0  ;        if (strcmp(StrParI1, StrParI2) > 0)
  1045. 00000724   15828600          0      add    lr02,lr06,0
  1046. 00000728   a8fe8036       X  0      call    lr00,_strcmp
  1047. 0000072c   15838700          0      add    lr03,lr07,0
  1048. 00000730   45796000          0      cple    gr79,gr60,0
  1049. 00000734   ac007907          0      jmpt    gr79,L002814
  1050. 00000738   70400101          0      aseq    40#h,gr01,gr01
  1051.                              0  ;        {
  1052.                              0  ;            IntLoc += 7;
  1053.                              0  ;            return (TRUE);
  1054. 0000073c   03006001          0      const    gr60,1
  1055. 00000740   15010110          0      add    gr01,gr01,16
  1056. 00000744   70400101          0      aseq    40#h,gr01,gr01
  1057. 00000748   c0000080          0      jmpi    lr00
  1058. 0000074c   5681817f          0      asleu    81#h,lr01,gr7f
  1059.                              0  L002814:
  1060.                              0  ;        }
  1061.                              0  ;        else
  1062.                              0  ;            return (FALSE);
  1063. 00000750   03006000          0      const    gr60,0
  1064.                              0  L002815:
  1065.                              0  ;    }
  1066.                              0  ;}
  1067. 00000754   15010110          0      add    gr01,gr01,16
  1068. 00000758   70400101          0      aseq    40#h,gr01,gr01
  1069. 0000075c   c0000080          0      jmpi    lr00
  1070. 00000760   5681817f          0      asleu    81#h,lr01,gr7f
  1071.                              0  ;
  1072.                              0  ;boolean Func3(EnumParIn)
  1073.                              0      .global    _Func3
  1074.                              0  ;--------------| Func3 |-----------------------
  1075.                              0  _Func3:
  1076.                              0  ; Codegen note: In coming parameters starts at lr02
  1077.                              0  ;REG Enumeration    EnumParIn;
  1078.  
  1079.  
  1080. Am29000-ASM  V2.21                                                                                                        Page   21
  1081.                              0  ;{
  1082.                              0  ;    REG Enumeration    EnumLoc;
  1083.                              0  ;
  1084.                              0  ;    EnumLoc = EnumParIn;
  1085.                              0  ;    if (EnumLoc == Ident3) return (TRUE);
  1086. 00000764   63798202          0      cpneq    gr79,lr02,2
  1087. 00000768   ac007904          0      jmpt    gr79,L00443
  1088. 0000076c   70400101          0      aseq    40#h,gr01,gr01
  1089. 00000770   c0000080          0      jmpi    lr00
  1090. 00000774   03006001          0      const    gr60,1
  1091.                              0  L00443:
  1092.                              0  ;    return (FALSE);
  1093. 00000778   03006000          0      const    gr60,0
  1094.                              0  L00444:
  1095.                              0  ;}
  1096. 0000077c   c0000080          0      jmpi    lr00
  1097. 00000780   70400101          0      aseq    40#h,gr01,gr01
  1098.                              0  
  1099.  
  1100.  
  1101. Am29000-ASM  V2.21                                                                                                        Page   22
  1102.                 Symbol Table
  1103. L00274              000006a8 D R   Relocatable [text]
  1104. L00275              000006ac D     Relocatable [text]
  1105. L002811             00000724 D R   Relocatable [text]
  1106. L002814             00000750 D R   Relocatable [text]
  1107. L002815             00000754 D     Relocatable [text]
  1108. L00282              000006c4 D R   Relocatable [text]
  1109. L00284              000006f8 D R   Relocatable [text]
  1110. L00288              00000704 D     Relocatable [text]
  1111. L003010             00000244 D R   Relocatable [text]
  1112. L00302              00000048 D R   Relocatable [text]
  1113. L00304              00000140 D R   Relocatable [text]
  1114. L00305              000001a4 D R   Relocatable [text]
  1115. L00306              000001dc D R   Relocatable [text]
  1116. L00307              00000208 D R   Relocatable [text]
  1117. L00309              00000230 D R   Relocatable [text]
  1118. L00382              00000638 D R   Relocatable [text]
  1119. L00383              00000654 D R   Relocatable [text]
  1120. L00393              000003f8 D R   Relocatable [text]
  1121. L00394              00000414 D     Relocatable [text]
  1122. L004010             00000524 D R   Relocatable [text]
  1123. L004012             000005c4 D R   Relocatable [text]
  1124. L00403              00000548 D R   Relocatable [text]
  1125. L00404              00000560 D R   Relocatable [text]
  1126. L00406              0000058c D R   Relocatable [text]
  1127. L00407              000005a4 D R   Relocatable [text]
  1128. L00409              000005bc D R   Relocatable [text]
  1129. L00412              00000438 D R   Relocatable [text]
  1130. L00414              00000458 D R   Relocatable [text]
  1131. L00433              000004a0 D R   Relocatable [text]
  1132. L00434              000004ac D R   Relocatable [text]
  1133. L00443              00000778 D R   Relocatable [text]
  1134. L00444              0000077c D     Relocatable [text]
  1135. L1                  00000004 D R   Relocatable [data]
  1136. L10                 000000bc D R   Relocatable [data]
  1137. L2                  00000024 D R   Relocatable [data]
  1138. L3                  00000044 D R   Relocatable [data]
  1139. L4                  00000064 D R   Relocatable [data]
  1140. L5                  0000006c D R   Relocatable [data]
  1141. L6                  00000070 D R   Relocatable [data]
  1142. L7                  00000090 D R   Relocatable [data]
  1143. L8                  0000009c D R   Relocatable [data]
  1144. L9                  000000a0 D R   Relocatable [data]
  1145. LL03013             000000d8 D R   Relocatable [text]
  1146. LL03014             00000164 D R   Relocatable [text]
  1147. LL0395              00000354 D R   Relocatable [text]
  1148. LL0396              00000400 D R   Relocatable [text]
  1149. LL04013             000000d0 D R   Relocatable [data]
  1150. _Array1Glob         00000010 D R G Relocatable [bss]
  1151. _Array2Glob         000000dc D R G Relocatable [bss]
  1152. _BoolGlob           00000004 D R G Relocatable [bss]
  1153.  
  1154.  
  1155. Am29000-ASM  V2.21                                                                                                        Page   23
  1156.                 Symbol Table
  1157. _Char1Glob          00000008 D R G Relocatable [bss]
  1158. _Char2Glob          0000000c D R G Relocatable [bss]
  1159. _Func1              0000068c D R G Relocatable [text]
  1160. _Func2              000006b4 D R G Relocatable [text]
  1161. _Func3              00000764 D R G Relocatable [text]
  1162. _IntGlob            00000000 D R G Relocatable [bss]
  1163. _Proc0              00000028 D R G Relocatable [text]
  1164. _Proc1              00000338 D R G Relocatable [text]
  1165. _Proc2              00000424 D R G Relocatable [text]
  1166. _Proc3              0000046c D R G Relocatable [text]
  1167. _Proc4              000004cc D R G Relocatable [text]
  1168. _Proc5              000004dc D R G Relocatable [text]
  1169. _Proc6              000004f8 D R G Relocatable [text]
  1170. _Proc7              000005d4 D R G Relocatable [text]
  1171. _Proc8              000005e4 D R G Relocatable [text]
  1172. _PtrGlb             00002980 D R G Relocatable [bss]
  1173. _PtrGlbNext         00002984 D R G Relocatable [bss]
  1174. _Version            00000000 D   G Relocatable [data]
  1175. __blmov             ******** D R   External
  1176. __sldiv             ******** D R   External
  1177. __ulmul             ******** D R   External
  1178. _exit               ******** D R   External
  1179. _fclose             ******** D R   External
  1180. _fopen              ******** D R   External
  1181. _fputs              ******** D R   External
  1182. _itoa               ******** D R   External
  1183. _main               00000000 D   G Relocatable [text]
  1184. _malloc             ******** D R   External
  1185. _strcmp             ******** D R   External
  1186. _time               ******** D R   External
  1187. bss                 Segment  D     Relocatable
  1188. data                Segment  D     Relocatable
  1189. nop                 Macro    D R   Absolute
  1190. text                Segment  D     Relocatable
  1191.